The small computer system interface (“SCSI”) protocol has become a ubiquitous protocol for formatting commands. Versions of the SCSI standard (e.g., SCSI-1, SCSI-2, SCSI-3) define both a command protocol with a set of defined commands (“SCSI commands”) and responses, a data transport protocol (the “SCSI transport protocol”) for encapsulating the commands and responses, and a SCSI physical interface. SCSI commands can be encapsulated according to a variety of data transport protocols without using the SCSI data transport protocol or SCSI physical interface. Example data transport protocols include fibre channel, serial storage architecture, serial bus protocol, iSCSI, advanced technology attachment (“ATA”), serial ATA (“SATA”), serial attached SCSI (“SAS”) and others. Thus, the SCSI standard separates the SCSI physical interface, SCSI command sets and the SCSI data transport protocol.
As the SCSI standard has evolved, operability issues have arisen between devices that use different versions of the SCSI standard. For example, legacy devices that support the SCSI-1 or SCSI-2 standard may not support all the commands of the SCSI-3 standard. Additionally, various versions of SCSI primary commands (“SPC”) have been developed, such that a device supporting SPC-2 commands may not support SCSI-2 formatted commands. As an example, in a fibre channel network, an initiator may send a LOGICAL UNIT RESET task managed function to a SCSI-1 or SCSI-2 compliant device. The LOGIC UNIT RESET message, however, was not made mandatory until the SPC-1 standard came out. If a drive that is not compliant with an SPC standard receives the LOGICAL UNIT RESET message, it will not understand how to process the message and may not reset the logical unit number (“LUN”).
One solution to this problem is to replace the legacy devices. This solution can be unsatisfactory as it is expensive and requires the migration of data to new devices. Another solution is to limit the commands that can be issued by newer devices to those supported by older devices. This solution is also unsatisfactory as it limits the functions provided by the network as a whole to the functions supported by a particular set of typically older and less functional devices.